<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:p="http://primefaces.org/ui"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:pe="http://primefaces.org/ui/extensions">

<ui:composition template="/WEB-INF/templates/template_interno_padrao.xhtml">
	
	<ui:define name="conteudo">
		
		
		<div class="row-fluid">
			<div class="span12" >
				<fieldset>
						<h3>
							<h:outputText value="Lançamento de contas a receber" /> 
						</h3>
				</fieldset>
			</div>
		</div>
		
		
		<p:growl id="growl" showDetail="false"  life="6000"/>
	
	<div class="row-fluid">
		<div class="span12" >
			<h:panelGroup id="mensagens" layout="block">
					<p:messages showDetail="false"/>
			</h:panelGroup>
		</div>
	</div>
				
	<!-- <h:form id="form">
		
			<div class="row-fluid">
				<div class="span2">
				    <p:outputLabel value="Ano de refêrencia" for="anoRef"/>
			    	<p:selectOneMenu id="anoRef" value="#{lancamentoContaAReceberBean.anoDeReferenciaSelecionado}"  required="true" requiredMessage="Selecione o [Ano] de referência" style="width: 14em" >
			    		<f:selectItem itemValue="#{null}" itemLabel=" "/>   
	            		<f:selectItems value="#{lancamentoContaAReceberBean.anosItens}"/> 
	        		</p:selectOneMenu> 
				</div>
				<div class="span2">
				    <p:outputLabel value="Mês de referência" for="mesRef"/>
			    	<p:selectOneMenu id="mesRef" value="#{lancamentoContaAReceberBean.mesDeReferenciaSelecionado}" required="true" requiredMessage="Selecione o [Mês] de referência" style="width: 14em" >
			    		<f:selectItem itemValue="#{null}" itemLabel=" "/>     
	            		<f:selectItems value="#{lancamentoContaAReceberBean.mesesItens}"/> 
	            		<f:converter converterId="omnifaces.GenericEnumConverter"/>
	       			 </p:selectOneMenu>  
				</div>
				<div class="span2">
				    <p:outputLabel value="Data de vencimento conta" for="dtVencConta"/>
				    <div class="controls">
				    	<p:calendar id="dtVencConta"  value="#{lancamentoContaAReceberBean.dataDoVencimentoSelecionado}" pages="2"  
							    pattern="dd/MM/yyyy" navigator="true" locale="pt_BR" showButtonPanel="true" 
							    required="true" requiredMessage="Entre com a data de vencimento.">
			 				<f:convertDateTime pattern="dd/MM/yyyy"/>
			 				<f:validator validatorId="DataVencimentoBoletoValidator"/>
			 			</p:calendar>
						<p:message for="dtVencConta"/>
					</div>
				</div>
			</div>
			
			<div class="row-fluid">
				<div class="span12">
					<p:commandButton value="Pesquisar contratos ativos para lançamento no contas a receber" action="#{lancamentoContaAReceberBean.doPesquisarContratosDisponiveisParaLancamentoNoMes}" process="@form" update=":mensagens :formResultado" style="margin-top: 2%"/>
				</div>
			</div>
			
	</h:form>
	
	<legend style="margin-top: 2%">Contratos Ativos disponíveis para lançamento no contas a receber</legend>
	
	<h:form id="formResultado">
		<div class="row-fluid">
			<div class="span12">
		    	<p:dataTable id="multiContratos" var="contrato" value="#{lancamentoContaAReceberBean.contratosDataModel}" selection="#{lancamentoContaAReceberBean.contratosSelecionados}" filteredValue="#{lancamentoContaAReceberBean.contratosFiltrados}"  widgetVar="tabelaContratosDesponiveis" emptyMessage="Nenhum registro">  
 
	  				<f:facet name="header">  
			            <p:outputPanel>  
			                <h:outputText value="Pesquisar em todos os campos:" />  
			                <p:inputText id="globalFilter" onkeyup="tabelaContratosDesponiveis.filter()" style="width:200px; margin-left: 2%" />  
			            </p:outputPanel>  
			        </f:facet>  
	  
			        <p:column selectionMode="multiple" style="width:2%" />  
			  
			  		<p:column headerText="Contrato" style="width:5%; font-size: 1.3em;">  
			            #{contrato.id}  
			        </p:column>  
			        
			        <p:column headerText="Estabelecimento" style="width:30%; font-size: 1.3em;">  
			            #{contrato.localPrestacaoServico.descricao}  
			        </p:column>  	
			        
			        <p:column headerText="Cliente" style="width:30%; font-size: 1.3em;">  
			            <h:outputText value="#{contrato.contratante.nome}"/>   
			        </p:column>  
			  
			        <p:column headerText="Serviço"  style="width:15%; font-size: 1.3em;"> 
			        	<h:outputText value="#{contrato.servicoPrincipal}"/> 
			        </p:column>  
			  
			        <p:column headerText="Valor"  style="width:10%;text-align: right">  
			            <h:outputText value="#{contrato.valorContrato}"  size="21" maxlength="21">
							<f:convertNumber type="number" locale="pt_BR" minFractionDigits="2"/>
						</h:outputText>
			        </p:column>  
				  
				  	<f:facet name="footer"> 
				  		<p:outputPanel>
					  		<p:commandButton id="cmdTeste" value="Confirmar lançamento no contas a receber" action="#{lancamentoContaAReceberBean.doGerarLancamentosContasAReceber}" process="@form" update="multiContratos:mensagemNenhumContratoSelecionadoParaLancamento :growl"/>
							<p:outputLabel id="mensagemNenhumContratoSelecionadoParaLancamento" value="#{lancamentoContaAReceberBean.mensagemNenhumContratoSelecionadoParaLancamento}" />
				  		</p:outputPanel>
       				</f:facet>  
				</p:dataTable> 
				
			
			</div>
		</div>
	
	
	</h:form> -->
	
	<h:form id="frmListagem">
				
			<p:dataTable id="dtlista" value="#{lancamentoContaAReceberBean.contratosAtivos}" var="contrato" emptyMessage="NENHUM CONTRATO" cellpadding="5" border="1" >
				
				
				<p:column headerText="Contrato">
					<h:outputText value="#{contrato.id}"/>
				</p:column>
				
				<p:column headerText="Estabelecimento" filterBy="#{contrato.localPrestacaoServico.descricao}" filterMatchMode="contains">
					<h:outputText value="#{contrato.localPrestacaoServico.descricao}"/>
				</p:column>
				
				<p:column headerText="Bairro">
					<h:outputText value="#{contrato.localPrestacaoServico.endereco.bairro}"/>
				</p:column>
				
				<p:column headerText="Cliente" filterBy="#{contrato.contratante.nome}" filterMatchMode="contains">
					<h:outputText value="#{contrato.contratante.nome}"/>
				</p:column>
				
				<p:column headerText="CPF">
					<h:outputText value="#{contrato.contratante.cpfCnpj.numero}">
						<f:converter converterId="CpfCnpjConverter"/>
					</h:outputText>
				</p:column>
				
				<p:column headerText="Serviço">
					<h:outputText value="#{contrato.servicoPrincipal}"/>
				</p:column>
				
				<p:column headerText="Status contrato">
					<h:outputText value="#{contrato.situacao.descricao}"/>
				</p:column>
				
				<p:column headerText="Ação">
					<p:commandButton value="Lanç. Contas a Receber" action="#{lancamentoContaAReceberBean.doPrepararLancamentoContaAReceber(contrato)}" update=":frmConfirmarLancamento" oncomplete="dlgConfirmarLancamento.show()">
						<!-- <f:setPropertyActionListener value="#{contrato}" target="#{contratoBean.contratoSelecionado}"/> -->
					</p:commandButton>
				</p:column>
				
			</p:dataTable>
		</h:form>
		
		<!-- Confirmar lançamento no contas a receber	-->
		<p:dialog id="dialogConfirmarLancamento" 
					header="Lançamento no Contas a Receber" 
					widgetVar="dlgConfirmarLancamento" 
					resizable="false"  
	             	width="50%"
	             	showEffect="clip" 
	             	hideEffect="fold">  
	 				
	 				<h:form id="frmConfirmarLancamento" class="form-horizontal">
			 			<p:messages/>
			 			
			 			<fieldset>
					  		<legend>#{lancamentoContaAReceberBean.lancamento.contrato.localPrestacaoServico.descricao}</legend>
					  			
					  			<p>
					  			<h:outputText value="Últimos lançamentos: #{lancamentoContaAReceberBean.mesesDeLancamentosRecentes}" style="font-size: 11px"/>
					  			</p>
					 			<div class="row-fluid">
					 				<div class="span6">
							              <div class="control-group">
							                <h:outputLabel value="Ano de referência" for="anoRef" class="control-label"/>
							                <div class="controls">
							                 	<!-- <p:inputText id="anoRef" value="#{lancamentoContaAReceberBean.lancamento.anoDeReferencia}" converterMessage="O ano de referencia tem de ser númerico" required="true" requiredMessage="Entre com o [Ano] de referência">
			 										<f:ajax/>
			 									</p:inputText> -->
			 									
			 									<h:selectOneMenu id="anoRef" value="#{lancamentoContaAReceberBean.lancamento.anoDeReferencia}"  required="true" requiredMessage="Selecione o [Ano] de referência" style="width: 14em" >
										    		<f:selectItem itemValue="#{null}" itemLabel=" "/>   
								            		<f:selectItems value="#{lancamentoContaAReceberBean.anosItens}"/> 
			        							</h:selectOneMenu> 
							                </div>
							              </div>
		            				</div><!--/span-->
			           			</div>	
			           			
			           			<div class="row-fluid">
					 				<div class="span6">
							              <div class="control-group">
							                <h:outputLabel value="Mês referência" for="mesRef" class="control-label"/>
							                <div class="controls">
			 									<h:selectOneMenu id="mesRef" value="#{lancamentoContaAReceberBean.lancamento.mesDeReferencia}" required="true" requiredMessage="Selecione o [Mês] de referência" style="width: 14em" >
										    		<f:selectItem itemValue="#{null}" itemLabel=" "/>     
								            		<f:selectItems value="#{lancamentoContaAReceberBean.mesesItens}"/> 
								            		<f:converter converterId="omnifaces.GenericEnumConverter"/>
			       			 					</h:selectOneMenu>  
							                </div>
							              </div>
		            				</div><!--/span-->
			           			</div>	
					 			
					 			<div class="row-fluid">
					 				<div class="span6">
							              <div class="control-group">
							                <h:outputLabel value="Data de vencimento conta" for="dtVencConta" class="control-label" />
							                <div class="controls">
							                 	<p:calendar id="dtVencConta"  value="#{lancamentoContaAReceberBean.lancamento.dataDeVencimento}" pages="2"  
											   	 	pattern="dd/MM/yyyy" navigator="true" locale="pt_BR" showButtonPanel="true" 
											    	required="true" requiredMessage="Entre com a data de vencimento.">
							 						<f:convertDateTime pattern="dd/MM/yyyy"/>
							 						<f:validator validatorId="DataVencimentoBoletoValidator"/>
							 						<f:ajax/>
							 					</p:calendar>
							                </div>
							              </div>
		            				</div><!--/span-->
			           			</div>	
			           			
			           			<div class="row-fluid">
					 				<div class="span6">
							              <div class="control-group">
							                <h:outputLabel value="Valor a receber"  for="vlrreceber" class="control-label"/>
							                <div class="controls">
							                 	<pe:inputNumber id="vlrreceber" value="#{lancamentoContaAReceberBean.lancamento.valorAPagar}" decimalSeparator="," thousandSeparator="." required="true" requiredMessage="Entre com o valor a receber" >
													<f:ajax/>
												</pe:inputNumber>
							                </div>
							              </div>
		            				</div><!--/span-->
			           			</div>	
					 			
					  	</fieldset>
				        
				        <div class="form-actions">
				  			<p:commandButton value="Confirmar" actionListener="#{lancamentoContaAReceberBean.doConfirmarLancamento}" oncomplete="handleDlgConfirmarLancamentoRequest(xhr, status, args)" update="@form :growl"   icon="ui-icon-check"/>
			                <p:commandButton value="Fechar tela" onclick="dlgConfirmarLancamento.hide()" icon="ui-icon-circle-close" type="button" />
						</div>
								
		                
			     </h:form>
	   	</p:dialog>

		<script type="text/javascript">  
		    function handleDlgConfirmarLancamentoRequest {  
		        if(!args.isOk) {  
		            jQuery('#dialogConfirmarLancamento').effect("shake", { times:3 }, 100);  
		        } else {  
		            jQuery('#dialogConfirmarLancamento').fadeOut();
		        }  
		    }
		</script>
	</ui:define>

</ui:composition>      
	
</html>